package com.project.mapper;

import com.project.bean.LogBean;
import com.project.bean.UserBean;
import org.apache.ibatis.annotations.*;

import java.util.List;

public interface IUserMapper {

    /**
     * 登录
     * @param userName 用户名
     * @param pwd 密码
     * @return 登录的用户对象
     */
    @Select("select * from t_user where u_userName=#{userName} and u_pwd=#{pwd}")
    @ResultMap("userMap")
    public UserBean login(@Param("userName") String userName, @Param("pwd") String pwd);
    /**
     * 添加日志信息
     * @param logBean
     */
    @Insert("insert into t_log(l_date,l_content)values(#{logDate},#{content})")
    public void addLog(LogBean logBean);

    /**
     * 添加用户
     * @param user 用户对象（包括用户名、真实姓名、用户等级、密码默认为666）
     */
    @Insert("insert into t_user(u_userName,u_trueName,u_grade,u_pwd)" +
            "values(#{userName},#{trueName},#{grade},#{pwd})")
    public void add(UserBean user);

    /**
     * 删除用户
     * @param id
     */
    @Delete("delete from t_user where pk_userId=#{id}")
    public void del(Integer id);

    /**
     * 修改密码
     * @param userId 登录用户id
     * @param newPwd
     * @return 返回失败信息，成功为null
     */
    @Update("update t_user set u_pwd=#{newPwd} where pk_userId=#{userId}")
    public void updatePwd(@Param("userId") Integer userId,@Param("newPwd") String newPwd);

    /**
     * 根据用户等级模糊动态查询用户，默认为所有
     * @param grade 等级
     * @return 返回符合条件的用户集合
     */
    public List<UserBean> findByGrade(String grade);

    /**
     * 根据id查询用户
     * @param id 用户id
     * @return
     */
    public UserBean findById(Integer id);

    /**
     * 根据id修改用户等级
     * @param id 用户id
     * @param newGrade 用户新等级
     */
    @Update("update t_user set u_grade=#{newGrade} where pk_userId=#{id}")
    public void updateGrade(@Param("id") Integer id,@Param("newGrade") String newGrade);


}
